package com.atguigu.structures;

public class BinarySearchExample {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        System.out.println(BinarySearch(arr, 11, 0, 8));
    }

    /**
     * 二分查找
     *
     * @param arr   查找的数组
     * @param value 要查找的数组
     * @param start 查找数组的起始位置
     * @param end   查找数组的结束位置
     * @return 找到返回true 找不到返回false
     */
    public static boolean BinarySearch(int[] arr, int value, int start, int end) {
        if (start > end) return false;
        int mid = (start + end) / 2;
        if (arr[mid] == value) return true;
        if (value < arr[mid]) return BinarySearch(arr, value, start, mid - 1);
        else return BinarySearch(arr, value, mid + 1, end);
    }
}
